How to configure the Linux kernel/General setup/Configure standard kernel features (for small systems)
Howto configure the Linux kernel / General setup / Configure standard kernel features (for small systems) =Configure standard kernel features (for small systems) Embedded= *'Option:' Load all symbols for debugging/kksymoops **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: KALLSYMS **bool **default yhelp Say Y here to let the kernel print out symbolic crash information and symbolic stack backtraces. This increases the size of the kernel somewhat, as all symbols have to be loaded into the kernel image. *'Option:' Include all symbols in kallsyms **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: KALLSYMS_ALL **(on/off) **depends on DEBUG_KERNEL && KALLSYMS **: Normally kallsyms only contains the symbols of functions, for nicer OOPS messages. Some debuggers can use kallsyms for other symbols too: say Y here to include all symbols, if you need them and you don't care about adding 300k to the size of your kernel. **: Say N. *'Option:' Do an extra kallsyms pass **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: KALLSYMS_EXTRA_PASS **(on/off) **depends on KALLSYMS **: If kallsyms is not working correctly, the build will fail with inconsistent kallsyms data. If that occurs, log a bug report and turn on KALLSYMS_EXTRA_PASS which should result in a stable build. Always say N here unless you find a bug in kallsyms, which must be reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while you wait for kallsyms to be fixed. *'Option:' Enable support for printk **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: PRINTK **default y **(on/off) **: This option enables normal printk support. Removing it eliminates most of the message strings from the kernel image and makes the kernel more or less silent. As this makes it very difficult to diagnose system problems, saying N here is strongly discouraged. *'Option:' BUG() support **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: BUG **(on/off) **default y **: Disabling this option eliminates support for BUG and WARN, reducing the size of your kernel image and potentially quietly ignoring numerous fatal conditions. You should only consider disabling this option for embedded systems with no facilities for reporting errors. Just say Y. *'Option:' Enable full-sized data structures for core **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: BASE_FULL **default y **(on/off) **: Disabling this option reduces the size of miscellaneous core kernel data structures. This saves memory on small machines, but may reduce performance. *'Option:' Enable futex support **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: FUTEX **(on/off) **default y **: Disabling this option will cause the kernel to be built without support for "fast userspace mutexes". The resulting kernel may not run glibc-based applications correctly. *'Option:' Enable eventpoll support **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: EPOLL **(on/off) **default y **: Disabling this option will cause the kernel to be built without support for epoll family of system calls. *'Option:' Use full shmem filesystem **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: SHMEM **(on/off) **default y **depends on MMU **: The shmem is an internal filesystem used to manage shared memory. It is backed by swap and manages resource limits. It is also exported to userspace as tmpfs if TMPFS is enabled. Disabling this option replaces shmem and tmpfs with the much simpler ramfs code, which may be appropriate on small systems without swap. *'Option:' "Function alignment" **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: CC_ALIGN_FUNCTIONS **default 0 **: Align the start of functions to the next power-of-two greater than n, skipping up to n bytes. For instance, 32 aligns functions to the next 32-byte boundary, but 24 would align to the next 32-byte boundary only if this can be done by skipping 23 bytes or less. Zero means use compiler's default. *'Option:' "Label alignment" **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: CC_ALIGN_LABELS **default 0 **: Align all branch targets to a power-of-two boundary, skipping up to n bytes like ALIGN_FUNCTIONS. This option can easily make code slower, because it must insert dummy operations for when the branch target is reached in the usual flow of the code. Zero means use compiler's default. *'Option:' "Loop alignment" **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: CC_ALIGN_LOOPS **default 0 **: Align loops to a power-of-two boundary, skipping up to n bytes. Zero means use compiler's default. *'Option:' "Jump alignment" **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: CC_ALIGN_JUMPS **default 0 **: Align branch targets to a power-of-two boundary, for branch targets where the targets can only be reached by jumping, skipping up to n bytes like ALIGN_FUNCTIONS. In this case, no dummy operations need be executed. Zero means use compiler's default. *'Option:' **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: TINY_SHMEM **default !SHMEM **(on/off) *'Option:' **Kernel Versions: 2.6.15.6-2.9.19; ... **Variable name: BASE_SMALL Category:Linux